Systems and methods for using haptic vibration for inter device communication

ABSTRACT

The present disclosure relates to systems and methods for using haptic vibration for inter-device communication. In one implementation, a system for inter-device communication using haptic vibration may include at least one force gauge configured to measure displacements caused by an external device in contact with the at least one force gauge; at least one memory storing instructions; and at least one processor configured to execute the instructions to: receive an identifier associated with a user; retrieve a pattern associated with the received identifier; receive, from the at least one force gauge, one or more measurements over a period of time; assess a degree of difference between the received one or more measurements and the retrieved pattern; and, when the degree of difference is below a threshold, authenticate the user.

TECHNICAL FIELD

This disclosure relates generally to the field of haptic communication.More specifically, and without limitation, this disclosure relates tosystems and methods for using haptic vibration for inter-devicecommunication.

BACKGROUND

Many devices authenticate themselves to other devices in order toperform particular functions. For example, a card associated with acustomer communicates with an automated teller machine (ATM) beforefunctions like withdrawals or deposits may be performed. In anotherexample, a mobile phone associated with a customer communicates with apoint-of-service (POS) machine to finalize a transaction with the POSmachine.

However, traditional wireless communication suffers from securityvulnerabilities, such as interception. Moreover, traditional physicalcommunication such as magnetic strips, manual entry of a personalidentification number (PIN), or other physical communications, may beintercepted using card skimmers, video cameras, or other devices used tocapture the physically communicated information.

SUMMARY

Disclosed systems and methods for using haptic vibration forinter-device communication solve the problems associated withtraditional wireless communication and physical communication systems.For example, the disclosed systems and methods may permit for easierauthentication from a user perspective (e.g., because a user may usetheir existing smartphone rather than additional hardware such as a cardand/or may not need to remember a PIN, password, or the like) whilesimultaneously maintaining a high level of security. For example,two-factor authorization using haptic vibration as described herein maybe more secure than conventional two-factor authorization techniquesbecause it may be difficult for wireless communicators, card skimmers,or the like to intercept such vibrations. Moreover, the disclosedsystems and methods for two-factor authorization using haptic vibrationas described herein may improve experiences of users because users mayuse their existing smartphones, tablets, or other devices, rather thancarry extra contactless cards and/or may not have to remember additionalidentifiers such as PINs.

There are many possible applications for such capabilities. Examples ofapplications include authentication of users at an ATM or other kiosks.Additional examples of application may include authentication of usersto authorize transactions at a retailer, authentication of users at aturnstyle or other physical barrier to allow access to a building and/ora room, or the like.

Certain embodiments of the present disclosure include or use one or moreexternal devices. As used herein, “external device” may refer to anydevice capable of performing haptic vibrations. For example, an externaldevice may comprise a smartphone, a tablet, a keychain having a hapticmotor, or the like.

Certain embodiments of the present disclosure include or use one or moreforce gauges. As used herein, “force gauge” may refer to a device ordevices capable of converting deformation of one part of the gauge intoan electrical signal representative of the deformation, e.g., an analogsignal or a digital signal. For example, a force gauge may comprise aspring scale, a strain gauge, or the like.

Certain embodiments of the present disclosure include or use one or moreaccelerometers. As used herein, “accelerometer” may refer to a device ordevices capable of converting mechanical motion of one part of the gaugeinto an electrical signal representative of the motion, e.g., an analogsignal or a digital signal. For example, an accelerometer may comprise amicro electro-mechanical systems (MEMS) accelerometer, a piezoelectricaccelerometer, a piezoresistive accelerometer, a capacitiveaccelerometer, or the like.

Certain embodiments of the present disclosure include or use one or morescales. As used herein, “scale” may refer to a device or devices capableof converting displacement of one part of the gauge into an electricalsignal representative of a mass of an object causing the displacement,e.g., an analog signal or a digital signal. For example, a scale maycomprise a spring scale, a hydraulic scale, a pneumatic scale, a stringgauge scale, or the like.

Certain embodiments of the present disclosure include or use one or morecards associated with a user. As used herein, “card” may refer to anyphysical card including an identifier of the user. For example, a cardmay comprise an identification card (e.g., a state-issued identificationcard, an institution-issued identification card, such as auniversity-issued card, or the like), a transaction card (e.g., a creditcard, a debit card, or the like), a smart card, or the like. The cardmay include a human-readable identifier or a computer-readableidentifier (e.g., a bar code, whether one-dimensional or matrixed, amagnetic strip, a contactless chip, or the like), or a combinationthereof.

According to an exemplary embodiment of the present disclosure, a systemfor inter-device communication using haptic vibration may comprise atleast one force gauge configured to measure displacements caused by anexternal device in contact with the at least one force gauge; at leastone memory storing instructions; and at least one processor configuredto execute the instructions to perform operations. The operations maycomprise receiving an identifier associated with a user; retrieving apattern associated with the received identifier; receiving, from the atleast one force gauge, one or more measurements over a period of time;assessing a degree of difference between the received one or moremeasurements and the retrieved pattern; and when the degree ofdifference is below a threshold, authenticating the user.

According to an exemplary embodiment of the present disclosure, a systemfor inter-device communication using haptic vibration may comprise atleast one accelerometer configured to measure strength and timing ofvibrations from an external device; at least one memory storinginstructions; and at least one processor configured to execute theinstructions to perform operations. The operations may comprisereceiving an identifier associated with a user; retrieving a patterncomprising one or more strengths with respect to time associated withthe received identifier; receiving, from the at least one accelerometer,one or more measurements of strengths over a period of time; assessing adegree of difference between the received one or more measurements ofstrengths and the one or more strengths of the retrieved pattern; andbased on the degree of difference, determining whether to authenticatethe user.

According to an exemplary embodiment of the present disclosure, a systemfor inter-device communication using haptic vibration may comprise atleast one scale configured to measure weight of an external device; atleast one of a force gauge or an accelerometer configured to measurevibrations from the external device; at least one memory storinginstructions; and at least one processor configured to execute theinstructions to perform operations. The operations may comprisereceiving, from the at least one scale, a measured weight; determining,based on the measured weight, one or more expected models of theexternal device; receiving an identifier associated with a user; andretrieving an expected model associated with the received identifier.When the expected model comprises one of the one or more expectedmodels, the operations may further comprise retrieving a pattern ofvibrations associated with the received identifier; receiving, from theat least one of a force gauge or an accelerometer, one or moremeasurements of vibrations; assessing a degree of difference between thereceived one or more measurements and the retrieved pattern; and whenthe degree of difference is below a threshold, authenticating the user.

According to an exemplary embodiment of the present disclosure, a systemfor calibration of inter-device communication using haptic vibration maycomprise at least one scale configured to measure weight of an externaldevice; at least one of a force gauge or an accelerometer configured tomeasure vibrations from the external device; at least one memory storinga table mapping models of external devices to weights and to one or moretransformations and storing instructions; and at least one processorconfigured to execute the instructions to perform operations. Theoperations may comprise receiving, from a user, an identifier of theuser; receiving, from the at least one scale, a measured weight of theexternal device; determining, using the stored table, one or more likelymodels for the external device; transmitting a command to the externaldevice configured to cause the external device to vibrate according toone or more patterns; receiving, from the at least one of a force gaugeor an accelerometer, one or more measurements corresponding to the oneor more patterns; selecting a correct model from the one or more likelymodels by verifying that the mapped one or more transformationstransform the one or more measurements into the one or more patterns,within a margin of error; and associating the received identifier withthe selected correct model.

According to an exemplary embodiment of the present disclosure, a systemfor calibration of inter-device communication using haptic vibration maycomprise at least one of a force gauge or an accelerometer configured tomeasure vibrations from the external device; at least one memory storinginstructions; and at least one processor configured to execute theinstructions to perform operations. The operations may comprisereceiving, from a user, an identifier of the user; transmitting acommand to the external device configured to cause the external deviceto vibrate according to one or more patterns; receiving, from the atleast one of a force gauge or an accelerometer, one or more measurementscorresponding to the one or more patterns; generating a data structuremapping the one or more measurements to the one or more patterns; andindexing the data structure by the received identifier.

According to an exemplary embodiment of the present disclosure, a systemfor calibration of inter-device communication using haptic vibration maycomprise at least one scale configured to measure weight of an externaldevice; at least one of a force gauge or an accelerometer configured tomeasure vibrations from the external device; at least one memory storinginstructions; and at least one processor configured to execute theinstructions to perform operations. The operations may comprisereceiving, from a user, an identifier of the user; receiving, from theuser, an indication of a model of the external device; receiving, fromthe at least one scale, a measured weight of the external device;transmitting a command to the external device configured to cause theexternal device to vibrate according to one or more patterns; receiving,from the at least one of a force gauge or an accelerometer, one or moremeasurements corresponding to the one or more patterns; generating adata structure mapping the one or more measurements to the one or morepatterns; indexing the data structure by the received model indication;and associating the received identifier with the received modelindication and the measured weight.

Additional embodiments of the present disclosure include non-transitorycomputer-readable media storing instructions that cause one or moreprocessors to execute any of the methods disclosed herein.

Additional objects and advantages of the present disclosure will be setforth in part in the following detailed description, and in part will beobvious from the description, or may be learned by practice of thepresent disclosure. The objects and advantages of the present disclosurewill be realized and attained by means of the elements and combinationsparticularly pointed out in the appended claims.

It is to be understood that the foregoing general description and thefollowing detailed description are exemplary and explanatory only, andare not restrictive of the disclosed embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which comprise a part of this specification,illustrate several embodiments and, together with the description, serveto explain the disclosed principles. In the drawings:

FIG. 1 is a schematic representation of an example system for usinghaptic vibration for inter-device communication, consistent withembodiments of the present disclosure.

FIG. 2 is a graphical representation of an example comparison of hapticmeasurements with a haptic pattern, consistent with embodiments of thepresent disclosure.

FIG. 3 is a graphical representation of a transformation used totransform a haptic pattern to expected haptic measurements, consistentwith embodiments of the present disclosure.

FIG. 4 is a flowchart of an exemplary method for inter-devicecommunication using haptic vibration, consistent with embodiments of thepresent disclosure.

FIG. 5 is a flowchart of an exemplary method for calibration ofinter-device communication using haptic vibration, consistent withembodiments of the present disclosure.

FIG. 6 is a depiction of an exemplary haptic keychain, consistent withembodiments of the present disclosure.

FIG. 7A is a depiction of an exemplary haptic smartphone, consistentwith embodiments of the present disclosure.

FIG. 7B is a side view of the device of FIG. 7A.

FIG. 8 is a depiction of an exemplary server for executing methodsconsistent with the present disclosure.

DETAILED DESCRIPTION

The disclosed embodiments relate to systems and methods for using hapticvibration for inter-device communication. Embodiments of the presentdisclosure may be implemented using one or more general purposecomputers in combination with at least one haptic motor and at least onesensor (e.g., an accelerometer, a force gauge, or the like).Alternatively or concurrently, one or more special purpose computer maybe built according to embodiments of the present disclosure usingsuitable circuit elements, e.g., one or more application-specificintegrated circuits or the like, in combination with at least one hapticmotor and at least one sensor (e.g., an accelerometer, a force gauge, orthe like).

FIG. 1 is a schematic representation of example system 100 forimplementing inter-device communication using haptic vibration. System100 may include a kiosk 101. For example, kiosk 101 may comprise anautomated teller machine (ATM), an entry gate for a building or room, orthe like. In some embodiments, kiosk 101 may comprise server 800 of FIG.8 or communicate with server 800 of FIG. 8. For example, kiosk 101 maycontact server 800 in order to authenticate users attempting to accesskiosk 101 (e.g., if kiosk 101 is an ATM, access may comprise awithdrawal or a deposit) or to access an area protected by kiosk 101(e.g., if kiosk 101 is an entry gate or a security system, access maycomprise physical access to an area, such as a room or building, gatedoff by or armed by kiosk 101).

Kiosk 101 may include or communicate with at least two sensors, e.g.,sensor 105 a and sensor 105 b. Sensor 105 a may be configured tocommunicate with an external device 103 while sensor 105 b may beconfigured to communicate with an identifier device 109 providing anidentifier. In some embodiments, external device 103 may comprisekeychain 600 of FIG. 6, smartphone 700 of FIGS. 7A and 7B, a tablet, orany other device having a haptic motor and configured to vibrate usingthe haptic motor. Accordingly, sensor 105 a may comprise a force gauge,an accelerometer, or any other sensor configured to detect thevibrations of external device 103.

In some embodiments, identifier device 109 may comprise a card, anotherkeychain, another smartphone, another tablet, or any other devicecapable of communicating an identifier to kiosk 101. Accordingly, sensor105 b may comprise a magnetic strip reader, a contactless reader, abarcode scanner, or any other sensor configured to extract an identifierfrom identifier device 109.

In some embodiments, as an alternative to external device 103 andidentifier device 109, system 100 may include a single device that isconfigured to communicate vibrations to sensor 105 a as well as tocommunicate an identifier to sensor 105 b. For example, the singledevice may comprise a smartphone (e.g., smartphone 700 of FIGS. 7A and7B) or a tablet having a haptic motor as well as contactlesscommunication capabilities, a keychain (e.g., keychain 600 of FIG. 6)having a haptic motor as well as contactless communication capabilities,or the like.

External device 103 may further be configured to communicate with kiosk101 using a computer network, e.g., network 107 a. Network 107 a maycomprise the Internet, a local area network (LAN), or the like, and mayuse one or more wireless standards, such as Wi-Fi, 4G, long-termevolution (LTE), or the like, and/or one or more wired standards, suchas Ethernet, token ring, or the like. Alternatively, network 107 a maycomprise a short-range communication link established using one or morestandards, such as near-field communication (NFC), Bluetooth®, or thelike.

Accordingly, external device 103 may receive commands from kiosk 101,e.g., including commands to vibrate according to a pattern from kiosk101 and/or a pattern stored on external device 103. In some embodiments,the pattern may comprise a collection of vibrations characterized byamplitudes and frequencies of the vibrations with respect to time. Insome embodiments, pattern may not be limited to “regular” patterns(e.g., sinusoidal or the like). That is, such patterns may includeirregularities in amplitudes and frequencies and may not be uniform.

Identifier device 109 may also be configured to communicate with kiosk101 using a computer network, e.g., network 107 b. Although depictedseparately, network 107 b may comprise, at least in part, network 107 a.Network 107 b may comprise the Internet, a LAN, or the like and may useone or more wireless standards, such as Wi-Fi, 4G, LTE, or the like,and/or one or more wired standards, such as Ethernet, token ring, or thelike. Alternatively, network 107 b may comprise a short-rangecommunication link established using one or more standards, such as NFC,Bluetooth®, or the like.

In any of the embodiments described above, sensor 105 b may be optional;in such cases, identifier device 109 may communicate the identifier tokiosk 101 via network 107 b. For example, if identifier device 109comprises a contactless card, a smartphone, a tablet, a contactlesskeychain, or the like, kiosk 101 may receive the identifier using ashort-range communication link established using one or more standards,such as NFC, Bluetooth®, or the like and/or using a computer network,such as the Internet, a LAN, or the like, operating using one or morewireless standards, such as Wi-Fi, 4G, LTE, or the like.

Accordingly, system 100 may allow for two-factor authentication of auser having external device 103 and identifier device 109 (or, inembodiments where external device 103 and identifier device 109 comprisea same, single device, the single device). For example, kiosk 101 mayreceive an identifier of the user from identifier device 109 anddetermine a predicted pattern of vibration expected from external device103. For example, the predicted pattern of vibration may comprise astored pattern of vibration associated with the identifier.Alternatively, kiosk 101 may transmit a command to external device 103that is associated with the identifier, and thus the predicted patternof vibration may comprise the pattern transmitted to external device103.

In some embodiments, as explained below with respect to FIG. 3, kiosk101 may transform the predicted pattern into predicted measurements fromexternal device 103 and/or transform measurements from external device103 into a pattern for comparison against the predicted pattern.

Moreover, as explained below with respect to FIG. 2, kiosk 101 mayauthenticate user based on a degree of difference between the predictedmeasurements and measurements from sensor 105 a and/or between thepredicted pattern and the pattern for comparison based on measurementsfrom sensor 105 a.

Although not depicted in FIG. 1, system 100 may further include at leastone scale. For example, the at least one scale may measure the weight ofexternal device 103. The at least one scale may be used inauthenticating the user. For example, the identifier may be associatedwith a weight, and the authentication may be further based on a degreeof difference between a measured weight of external device 103 and theweight associated with the identifier. Additionally or alternatively,the at least one scale may be used to select a transformation for thepredicted pattern to predicted measurements and/or for the measurementsto a pattern for comparison. For example, the measured weight may beused to select one or more possible models for external device 103, eachmodel being associated with one or more transformations.

Moreover, the scale may be used to calibrate kiosk 101. For example,kiosk 101 may measure the weight of external device 103 and may alsotransmit a pattern of vibrations to external device 103. Accordingly,kiosk 101 may receive measurements from sensor 105 a corresponding tothe pattern of vibrations. Kiosk 101 may thus store the measurements,the pattern of vibrations, a transformation from the measurements to thepattern, a transformation from the pattern to the measurements, or acombination thereof in associated with the measured weight. Furthermore,kiosk 101 may receive an indicator of a model of external device 103 andindex the data structure storing the measured weight with the associatedmeasurements, pattern of vibrations, transformation from themeasurements to the pattern, transformation from the pattern to themeasurements, or combination thereof with the model indicator. In someembodiments, this calibration may be performed remotely from kiosk 101such that the indexed data structure is transferred to kiosk 101 forstorage and/or is retrievable by kiosk 101 (e.g., from a server remotefrom kiosk 101).

In some embodiments, kiosk 101 may perform a calibration without atleast one scale. For example, kiosk 101 may transmit a pattern ofvibrations to external device 103. Kiosk 101 may receive measurementsfrom sensor 105 a corresponding to the pattern of vibrations. Kiosk 101may thus store the measurements, the pattern of vibrations, atransformation from the measurements to the pattern, a transformationfrom the pattern to the measurements, or a combination thereof inassociated with a received indicator of a model of external device 103.Thus, in some embodiments, kiosk 101 may index the data structurestoring the associated measurements, pattern of vibrations,transformation from the measurements to the pattern, transformation fromthe pattern to the measurements, or combination thereof with thereceived model indicator. In some embodiments, this calibration may beperformed remotely from kiosk 101 such that the indexed data structureis transferred to kiosk 101 for storage and/or is retrievable by kiosk101 (e.g., from a server remote from kiosk 101).

During calibration, kiosk 101 may display a message to a user to removea case or other cover from external device 103. For example, the case orother cover may alter the measurements (e.g., from the at least onescale and/or caused by the vibrations) such that they no longercorrelate to the indicator of the model of external device 103.Alternatively, kiosk 101 may calibrate external device 103 with the caseor other cover present on external device 103. Accordingly, a patternand/or transformation stored in associated with the identifier of theuser and/or the indicator of the model may account for the case and/orother cover. In some embodiments, the indicator of the model may furtherinclude a sub-indicator of the model for the case and/or other cover, ifany.

FIG. 2 depicts an example graphical representation 200 of a degree ofdifference between a set of measurements and a pattern of vibrations. Inthe example of FIG. 2, the “Error” represents a function(mathematically, a correspondence between the domain, time in theexample of FIG. 2, and the range, amplitudes or other measures ofvibrational strength in the example of FIG. 2, such that each member ofthe set comprising the domain corresponds to a single member of the setcomprising the range) that is the difference between the “Pattern”function and the “Measurements” function. In some embodiments, thedifference may be signed while, in other embodiments, the difference maybe unsigned.

In the example of FIG. 2, the haptic vibrations may be encoded asstrengths with respect to time such that the values of the functions areall positive. For example, peaks S1, S2, and S3 all represent spikes instrengths of vibrations, which represent underlying sinusoidal or otherperiodic vibrations caused by a haptic motor, e.g., of external device103 of FIG. 1. In alternative embodiments, the haptic vibrations may beencoded as the periodic vibrations such that the values of the functionsoscillate between positive and negative.

Although depicted as a difference, one or more other measures may beused as the degree of difference or as a basis for determining thedegree of difference. For example, an autocorrelation between the“Pattern” function and the “Measurements” function, convolution betweenthe “Pattern” function and the “Measurements” function, or the like maybe used to determine the degree of difference, which may be a maximum ofthe autocorrelation function, a minimum of the autocorrelation function,an unsigned area of the autocorrelation function, or the like. Moreover,although depicted as continuous in FIG. 2, one or more of the “Error”function, the “Pattern” function, and the “Measurements” function may bediscontinuous (e.g., comprising, graphically, a scatter plot rather thana solid line). For example, the “Pattern” function may comprise discretevibrational strengths representing commands to a haptic motor and/or the“Measurements” function may comprise discrete measurements from sensor105 a of FIG. 1.

The “Error” function may be used as the degree of difference toauthenticate the user. For example, the degree of difference may beassessed as a maximum of the “Error” function, a minimum of the “Error”function, an integral of the “Error” function, or other measurements ofthe magnitude of the “Error” function at one or more times (or acombination of times). Accordingly, when the degree of difference isbelow a threshold, the system (e.g., kiosk 101 of FIG. 1) mayauthenticate the user while, when the degree of difference is above athreshold, the system (e.g., kiosk 101 of FIG. 1) may deny access to theuser. In some embodiments, the system (e.g., kiosk 101 of FIG. 1) mayemploy a multi-tiered authentication scheme. For example, when thedegree of difference is below a first threshold, the system (e.g., kiosk101 of FIG. 1) may authenticate the user, when the degree of differenceis above the first threshold but below a second, higher threshold, thesystem (e.g., kiosk 101 of FIG. 1) may prompt the user for an additionalcredential (e.g., a PIN, a password, or the like), and when the degreeof difference is above the second threshold, the system (e.g., kiosk 101of FIG. 1) may deny access to the user.

FIG. 3 depicts an example graphical representation 300 of atransformation from a pattern of vibrations to an expected set ofmeasurements. In the example of FIG. 2, the “Transformation” representsa function (mathematically, a correspondence between the domain, time inthe example of FIG. 3, and the range, amplitudes or other measures ofvibrational strength in the example of FIG. 3, such that each member ofthe set comprising the domain corresponds to a single member of the setcomprising the range) that transforms the “Pattern” function into the“Expected Measurements” function. Alternatively, the “Transformation”function may represent a function that transforms a “Measurements”function into an “Expected Pattern” function. Accordingly, the “ExpectedMeasurements” function and a “Measurements” function or the “Pattern”function and an “Expected Pattern” function may be compared as explainedabove with respect to FIG. 2. For example, the system (e.g., kiosk 101of FIG. 1) may authenticate a user based on a degree of differencebetween the “Expected Measurements” function and the “Measurements”function. Similarly, the system (e.g., kiosk 101 of FIG. 1) mayauthenticate a user based on a degree of difference between the“Expected Pattern” function and the “Pattern” function.

In the example of FIG. 3, similar to the example of FIG. 2, the hapticvibrations may be encoded as strengths with respect to time such thatthe values of the functions are all positive. For example, peaks S1, S2,and S3 all represent spikes in strengths of vibrations, which representunderlying sinusoidal or other periodic vibrations caused by a hapticmotor, e.g., of external device 103 of FIG. 1. In alternativeembodiments, the haptic vibrations may be encoded as the periodicvibrations such that the values of the functions oscillate betweenpositive and negative.

Although the “Transformation” function is depicted as multiplicative,one or more other transformations may be used, such as an additivetransformation, a Fourier transformation, a translationaltransformation, or the like. Moreover, although depicted as continuousin FIG. 2, one or more of the “Transformation” function, the “Pattern”function, and the “Expected Measurements” function may be discontinuous(e.g., comprising, graphically, a scatter plot rather than a solidline). For example, the “Pattern” function may comprise discretevibrational strengths representing commands to a haptic motor and/or the“Expected Measurements” function may comprise discrete measurementsexpected from sensor 105 a of FIG. 1.

The “Transformation” function may represent a function selected by thesystem (e.g., kiosk 101 of FIG. 1 or server 800 of FIG. 8) based on ameasured weight and/or a received model of external device 103 ofFIG. 1. For example, the system (e.g., kiosk 101 of FIG. 1 or server 800of FIG. 8) may receive an indicator of the model of external device 103of FIG. 1 and retrieve one or more “Transformation” functions indexed tothe received indicator. Additionally or alternatively, the system (e.g.,kiosk 101 of FIG. 1 or server 800 of FIG. 8) may measure a weight (e.g.,using at least one scale) of the model of external device 103 of FIG. 1and retrieve one or more “Transformation” functions indexed to themeasured weight (optionally plus or minus a predetermined margin oferror, such as one gram, two grams, 1%, 2%, 5%, or the like).Accordingly, the system (e.g., kiosk 101 of FIG. 1 or server 800 of FIG.8) may then use the one or more “Transformation” functions toauthenticate a user, as explained above.

In embodiments where the system (e.g., kiosk 101 of FIG. 1 or server 800of FIG. 8) retrieves more than one “Transformation” function, the systemmay apply the plurality of “Transformation” functions to generate aplurality of “Expected Measurements” or “Expected Pattern” functions andselect the corresponding “Expected Measurements” or “Expected Pattern”function that minimizes a degree of difference between the “ExpectedMeasurements” function and a “Measurements” function or the “ExpectedPattern” function and a “Pattern” function.

FIG. 4 is a flowchart of exemplary method 400 for inter-devicecommunication using haptic vibration. Exemplary method 400 may beimplemented by, for example, one or more processors of kiosk 101 of FIG.1 and/or server 800 of FIG. 8. Exemplary method 400 may further beimplemented using a general purpose computer or special purpose computerhaving at least one processor.

At step 401, the processor may receive an identifier associated with auser. For example, as explained above with respect to FIG. 1, kiosk 101may receive an identifier from device 103 using sensor 105 b.

In some embodiments, a contactless reader may receive the identifierfrom a contactless device associated with the user. In such embodiments,the contactless device may comprise the same device that vibrates (asexplained below in step 405). Alternatively, as explained above withrespect to FIG. 1, the contactless device (e.g., device 103) maycomprise a contactless card (e.g., using NFC or radio frequencyidentification (RFID) technology), a portable contactless device (e.g.,a contactless keychain such as keychain 600, a contactless fob, etc.),or the like.

Additionally or alternatively, a card reader may receive the identifierfrom a card associated with the user. For example, as explained above,the card may comprise a debit card, credit card, identification card, orany other card including the identifier that is extractable by sensor105 b of FIG. 1.

Additionally or alternatively, one or more input keys may receive theidentifier from the user. For example, the identifier may comprise apersonal identification number (PIN) entered by the user using a keypad,keyboard, or the like.

At step 403, the processor may retrieve a pattern associated with thereceived identifier. In some embodiments, the pattern may comprise oneor more strengths with respect to time, as depicted above in FIG. 2. Insome embodiments, the pattern comprises a plurality of expectedmeasurements over the period of time, as depicted above in FIG. 3.

At step 405, the processor may receive, from at least one of a forcegauge or an accelerometer, one or more measurements over a period oftime. For example, measurements may be received from sensor 105 a ofFIG. 1, as explained above. In some embodiments, the one or moremeasurements may comprise measurements of strengths of vibrations, e.g.,of external device 103 of FIG. 1.

At step 407, the processor may assess a degree of difference between thereceived one or more measurements and the retrieved pattern. Forexample, the degree of difference may be determined as explained abovewith respect to FIG. 2. In embodiments where the pattern comprises oneor more strengths, the degree of difference may be between the receivedone or more measurements of strengths and the one or more strengths ofthe retrieved pattern.

In some embodiments, the degree of difference may depend on acombination of difference magnitudes between a measured strength and astrength of the retrieved pattern at each of a plurality of intervalsover the period of time. For example, as explained above with respect toFIG. 2, the degree of difference may be determined based on asubtraction (whether signed or unsigned) of the measurements (or from anexpected pattern as explained with respect to FIG. 3) from the retrievedpattern (or from expected measurements as explained with respect to FIG.3). Alternatively, the degree of difference may depend on anautocorrelation of a function representing the one or more measuredstrengths over time and a function representing the one or morestrengths of the retrieved pattern over time. For example, the degree ofdifference may comprise a maximum or a minimum of the autocorrelationfunction, an unsigned area (e.g., an integral) of the autocorrelationfunction, or the like.

When the degree of difference is below a threshold, the processor maydetermine whether to authenticate the user. For example, method 400 maythen trifurcate. For example, at step 409 a, the processor may promptthe user for an additional verification, such as a PIN, a password, orthe like. At step 409 b, the processor may authenticate the user. Atstep 409 c, the processor may deny access to the user. Two thresholdsmay delineate steps 409 a, 409 b, and 409 c. For example, as describedabove, the processor may authenticate the user when the degree ofdifference is below both thresholds, prompt the user for the additionalverification when the degree of difference is between the thresholds,and deny access when the degree of difference is above both thresholds.

Although depicted as trifurcating, other variations of method 400 arepossible. For example, method 400 may bifurcate such that the processorauthenticates the user when the degree of difference below a thresholdand prompts the user for additional verification when the degree ofdifference is above the threshold. In another example, method 400 maybifurcate such that the processor prompts the user for the additionalverification when the degree of difference is below a threshold anddenies access when the degree of difference is above the threshold.

In any of the embodiments described above, a plurality of additionalverifications may be used. For example, the processor may authenticatethe user when the degree of difference is below both thresholds, promptthe user for a first additional verification when the degree ofdifference is between the thresholds, and prompt the user for a secondadditional verification when the degree of difference is above boththresholds. In another example, the processor may prompt the user for afirst additional verification when the degree of difference is belowboth thresholds, prompt the user for a second additional verificationwhen the degree of difference is between the thresholds, and deny accesswhen the degree of difference is above both thresholds. Althoughdescribed above using two additional verifications, any number ofadditional verifications in combination with any number of thresholdsmay be used. The additional verifications may increase in complexity intandem with increases in the degree of difference. For example, thefirst additional verification may comprise a PIN, and the secondadditional verification may comprise a password. In another example, thefirst additional verification may comprise a PIN, and the secondadditional verification may comprise a biometric (e.g., a fingerprint orthe like).

In any of the embodiments described above, one or more of the thresholdsmay be dynamic. For example, one or more of the thresholds may beadjusted based on a degree of difference between a measured weight ofexternal device 103 and an expected weight of external device 103, asexplained further below. In another example, one or more thresholds maybe adjusted based on a degree of vulnerability associated with thereceived identifier. For example, a user whose account has been hackedpreviously may be associated with lower (that is, stricter) thresholdsthan another user whose account has not been hacked previously.

Method 400 may include additional steps. For example, method 400 mayinclude determining, based on the identifier, an expected model of theexternal device and converting the retrieved pattern to the plurality ofexpected measurements based on the expected model. As explained abovewith respect to FIG. 1, a database may map user identifiers to expectedmodels, which are further mapped to one or more transformations (asexplained above with respect to FIG. 3). Alternatively to converting theretrieved pattern, the one or more transformations may convert the oneor more measurements to an expected pattern. In some embodiments, theprocessor may have previously received the expected model from the userand stored the expected model in the at least one memory for retrieval.For example, the user may provide the model during a registrationprocedure and/or during a calibration process, e.g., method 500 of FIG.5 explained below.

Additionally or alternatively, method 400 may include receiving, fromthe at least one scale, a measured weight and determining, based on themeasured weight, one or more expected models of the external device. Forexample, as explained above with respect to FIG. 1, a database may map,weights to one or more models. Based on a margin of error (e.g., 1 gram,2 grams, 1%, 2%, 5%, or the like), the processor may determine the oneor more expected models. In such embodiments, method 400 may furtherinclude retrieving an expected model associated with the receivedidentifier, as explained above. Accordingly, when the expected modelcomprises one of the one or more expected models, the processor mayproceed to retrieve a pattern of vibrations associated with the receivedidentifier (as explained above); receive, from the least one of a forcegauge or an accelerometer, one or more measurements of vibrations (asexplained in step 405 above); assess a degree of difference between thereceived one or more measurements and the retrieved pattern (asexplained in step 407 above); and when the degree of difference is belowa threshold, determine whether to authenticate the user (as explained insteps 409 a, 409 b, and 409 c above). Accordingly, the use of anon-registered and/or non-calibrated device may be prevented by refusingto accept measurements caused by vibrations of a device having a weightnot within a margin of error of the weight of the expected modelassociated with the user identifier.

In any of the embodiments described above, the expected model maycomprise at least one of a weight associated with the external deviceand a vibrational frequency associated with the external device. Forexample, the vibrational frequency may map a series of forces,accelerations, or the like measured by the at least one of a force gaugeor an accelerometer to positive measurements of the amplitudes of thosevibrations, as discussed with respect to FIGS. 2 and 3.

In any of the embodiments described above, method 400 may furtherinclude activating the at least one accelerometer (e.g., providing powerto, e.g., by closing one or more switches) after receiving theidentifier and/or disabling the at least one accelerometer (e.g., byeliminating power to it, e.g., by opening one or more switches) afterdetermining to authenticate (or deny access to) the user.

FIG. 5 is a flowchart of exemplary method 500 for calibration ofinter-device communication using haptic vibration. Exemplary method 500may be implemented by, for example, one or more processors of kiosk 101of FIG. 1 and/or server 800 of FIG. 8. Exemplary method 500 may furtherbe implemented using a general purpose computer or special purposecomputer having at least one processor.

At step 501, the processor may receive, from a user, an identifier ofthe user. For example, step 501 may be performed similarly to step 401of method 400, as described above with respect to FIG. 4.

In some embodiments, the processor may further receive, from at leastone scale, a measured weight of the external device. In suchembodiments, the processor may determine, using a stored table, one ormore likely models for the external device. For example, as explainedabove with respect to FIG. 1, the stored table may associate weightswith expected models. As further explained above, the one or more likelymodels may be selected based on a margin of error (e.g., 1 gram, 2grams, 1%, 2% 5%, or the like).

At step 503, the processor may transmit a command to the external deviceconfigured to cause the external device to vibrate according to one ormore patterns. For example, as explained above with respect to FIG. 1,the processor may transmit the command over a computer network (e.g.,networks 107 a/107 b) and/or using a short-range communication link suchas NFC, Bluetooth®, or the like. The command may be randomly generatedby the processor or previously stored in a table accessible by theprocessor.

At step 505, the processor may receive, from the at least one of a forcegauge or an accelerometer, one or more measurements corresponding to theone or more patterns, e.g., as depicted above in FIG. 2.

At step 507, the processor may select a correct model from the one ormore likely models by verifying that the mapped one or moretransformations transform the one or more measurements into the one ormore patterns, within a margin of error. For example, as explained abovewith respect to FIGS. 2 and 3, one or more transformations that reduce adegree of difference may be selected. Accordingly, the processor mayassociate the received identifier with the selected correct model.

Alternatively, the processor may generate a data structure mapping theone or more measurements to the one or more patterns and index the datastructure by the received identifier. For example, the data structuremay function similar to a transformation by mapping particular portionsof one or more patterns to one or more particular measurements.

Additionally or alternatively, the processor may receive, from the user,an indication of a model of the external device. In such embodiments,the generated data structure may additionally or alternatively beindexed by the received model indication.

Method 500 may include additional steps. For example, method 500 mayinclude receiving, from the at least one scale, a measured weight of theexternal device. In such embodiments, the processor may associate thereceived identifier with the received model indication and the measuredweight.

FIG. 6 is a depiction of example keychain 600 that may, for example, beused as external device 103 of FIG. 1. As depicted in FIG. 6, keychain600 may include a transponder 601, a control circuit 603, a battery 605,and a haptic motor 607. Accordingly, as depicted in FIG. 6, battery 605may power transponder 601, control circuit 603, and haptic motor 607.

In some embodiment, transponder 601 may comprise a transceiver, e.g.,operating in a radio frequency range or other frequency of light used tosend and receive signals. In other embodiments, transponder 601 maycomprise a receiver that only receives signals and does not transmitssignals. In such embodiments, keychain 600 may further comprise a buttonor other manual input mechanism, e.g., to activate haptic motor 607.

Battery 605 may comprise a nickel-iron battery, a lithium ion battery,or other battery that may be re-chargeable or non-rechargeable. Battery605 may be replaceable, e.g., by opening keychain 600 along a junctionbetween one or more pieces (e.g., of plastic, of metal, or the like)forming a housing for transponder 601, control circuit 603, battery 605,and haptic motor 607. Alternatively, battery 605 may be integral tokeychain 600.

Haptic motor 607 may comprise an eccentric rotating mass (ERM) hapticmotor, a linear resonant actuator (LRA) haptic motor, or any otherdevice configured to transform electric power from battery 605 intorotational energy and/or vibrational energy. Control circuit 603 maycomprise a microprocessor or any other circuit controlling the contenttransmitted by transponder 601 and/or the pattern of vibrations causedby haptic motor 607. For example, control circuit 603 may controltiming, intensity, or other properties of a radio frequency signaltransmitted by transponder 601 and/or timing, intensity, or otherproperties of the vibrations caused by haptic motor 607. Accordingly,control circuit 603 may comprise a clock circuit or other circuitcontrolling such properties. Control circuit 603 may control one or moreproperties of the vibrations signal based on a control signal receivedby transponder 601. For example, kiosk 101 of FIG. 1 may execute, atleast in part, method 500 of FIG. 5 and transmit a corresponding controlsignal to adjust the vibrations of haptic motor 607. Alternatively,control circuit 603 may activate stored controls based on a promptingsignal received by transponder 601. For example, the stored controls maycomprise a stored pattern previously received by transponder 601 andassociated with an identifier of a user, e.g., as stored in associatedon kiosk 101 of FIG. 1 or server 800 of FIG. 8.

In some embodiments, keychain 600 may be implemented as a portablecontactless device (e.g., a contactless fob).

FIG. 7A is a depiction of an example smartphone 700 that may, forexample, be used as external device 103 of FIG. 1. As depicted in FIG.7A, device 700 may comprise a smartphone or tablet. Device 700 may havea screen 701. For example, screen 701 may display one or more graphicaluser interfaces (GUIs) that allow a user of device 700 to sendinformation to and receive information from one or more computernetworks. In certain aspects, screen 701 may comprise a touchscreen tofacilitate use of the one or more GUIs.

As further depicted in FIG. 7A, device 700 may have one or more buttons,e.g., buttons 703 a and 703 b. For example, buttons 703 a and 703 b mayfacilitate use of one or more GUIs displayed on screen 701.

FIG. 7B is a side view of user interface device 700 of FIG. 7A. Asdepicted in FIG. 7B, device 700 may have at least one processor 705. Forexample, at least one processor 705 may comprise a system-on-a-chip(SOC) adapted for use in a portable device, such as device 700.Alternatively or concurrently, at least one processor 705 may compriseany other type(s) of processor.

As further depicted in FIG. 7B, device 700 may include a networkinterface 709. For example, network interface 709 may comprise awireless interface, e.g., a network interface card (NIC) configured toutilize Wi-Fi, Bluetooth, 4G, etc. In other embodiments, networkinterface 709 may comprise a wired interface, e.g., an NIC configured toutilize Ethernet, Token Ring, etc. In some embodiments, networkinterface 709 may permit device 700 to send information to and receiveinformation from one or more computer networks.

As further depicted in FIG. 7B, device 700 may have one or morememories, e.g., memories 707 a and 707 b. In certain aspects, some ofthe one or more memories, e.g., memory 707 a, may comprise a volatilememory. In such aspects, memory 707 a, for example, may store one ormore applications (or “apps”) for execution on at least one processor705. For example, an app may include an operating system for device 700and/or an app for executing one or more steps of methods disclosedherein. In addition, an app may be used to send data to and receive datafrom one or more computer networks, e.g., data sent and received tokiosk 101 of FIG. 1 and/or server 800 of FIG. 8 in accordance with oneor more steps of methods disclosed herein. In addition, memory 707 a maystore data generated by, associated with, or otherwise unrelated to anapp in memory 707 a.

Alternatively or concurrently, some of the one or more memories, e.g.,memory 707 b, may comprise a non-volatile memory. In such aspects,memory 707 b, for example, may store one or more applications (or“apps”) for execution on at least one processor 705. For example, asdiscussed above, an app may include an operating system for device 700,an app for executing one or more steps of methods disclosed herein,and/or an app for sending data to and receiving data from one or morecomputer networks, e.g., data sent and received in accordance with oneor more steps of methods disclosed herein. In addition, memory 707 b maystore data generated by, associated with, or otherwise unrelated to anapp in memory 707 b. Furthermore, memory 707 b may include a pagefile,swap partition, or other allocation of storage to allow for the use ofmemory 707 b as a substitute for a volatile memory if, for example,memory 707 a is full or nearing capacity.

FIG. 8 is a depiction of an example server 800 for inter-devicecommunication using haptic vibration and/or calibration of inter-devicecommunication using haptic vibration. Server 800 of FIG. 8 may compriseor be in communication with kiosk 101 of FIG. 1. As depicted in FIG. 8,server 800 may have a processor 801. Processor 801 may comprise a singleprocessor or a plurality of processors. For example, processor 801 maycomprise a CPU, a GPU, a reconfigurable array (e.g., an FPGA or otherASIC), or the like.

Processor 801 may be in operable connection with a memory 803, aninput/output module 805, and a network interface controller (NIC) 807.Memory 803 may comprise a single memory or a plurality of memories. Inaddition, memory 803 may comprise volatile memory, non-volatile memory,or a combination thereof. As depicted in FIG. 8, memory 803 may storeone or more operating systems 809 and a credentialing service 811. Forexample, calibration service 811 a may include instructions to executeall or part of method 500 of FIG. 5. Similarly, authentication service811 b may include instructions to execute all or part of method 400 ofFIG. 4. Accordingly, processor 801 may execute all or part of method 400of FIG. 4 and/or method 500 of FIG. 5. In addition, memory 803 may storedata 813 produced by, associated with, or otherwise unrelated tooperating system 809 and/or credentialing service 811.

Input/output module 805 may store and retrieve data from one or moredatabases 815. For example, database(s) 815 may include data structuresindexed by weight and/or model, as described above. Additionally oralternatively, database(s) 815 may include identifiers of users, whetherencrypted or unencrypted.

NIC 807 may connect server 800 to one or more computer networks. In theexample of FIG. 8, NIC 807 connects server 800 to the Internet. Server800 may receive data and instructions over a network using NIC 807 andmay transmit data and instructions over a network using NIC 807.

The foregoing description has been presented for purposes ofillustration. It is not exhaustive and is not limited to precise formsor embodiments disclosed. Modifications and adaptations of theembodiments will be apparent from consideration of the specification andpractice of the disclosed embodiments. For example, the describedimplementations include hardware and software, but systems and methodsconsistent with the present disclosure can be implemented with hardwarealone. In addition, while certain components have been described asbeing coupled to one another, such components may be integrated with oneanother or distributed in any suitable fashion.

Moreover, while illustrative embodiments have been described herein, thescope includes any and all embodiments having equivalent elements,modifications, omissions, combinations (e.g., of aspects across variousembodiments), adaptations and/or alterations based on the presentdisclosure. The elements in the claims are to be interpreted broadlybased on the language employed in the claims and not limited to examplesdescribed in the present specification or during the prosecution of theapplication, which examples are to be construed as nonexclusive.Further, the steps of the disclosed methods can be modified in anymanner, including reordering steps and/or inserting or deleting steps.

Instructions or operational steps stored by a computer-readable mediummay be in the form of computer programs, program modules, or codes. Asdescribed herein, computer programs, program modules, and code based onthe written description of this specification, such as those used by thecontroller, are readily within the purview of a software developer. Thecomputer programs, program modules, or code can be created using avariety of programming techniques. For example, they can be designed inor by means of Java, C, C++, assembly language, or any such programminglanguages. One or more of such programs, modules, or code can beintegrated into a device system or existing communications software. Theprograms, modules, or code can also be implemented or replicated asfirmware or circuit logic.

The features and advantages of the disclosure are apparent from thedetailed specification, and thus, it is intended that the appendedclaims cover all systems and methods falling within the true spirit andscope of the disclosure. As used herein, the indefinite articles “a” and“an” mean “one or more.” Similarly, the use of a plural term does notnecessarily denote a plurality unless it is unambiguous in the givencontext. Words such as “and” or “or” mean “and/or” unless specificallydirected otherwise. Further, since numerous modifications and variationswill readily occur from studying the present disclosure, it is notdesired to limit the disclosure to the exact construction and operationillustrated and described, and accordingly, all suitable modificationsand equivalents may be resorted to, falling within the scope of thedisclosure.

Other embodiments will be apparent from consideration of thespecification and practice of the embodiments disclosed herein. It isintended that the specification and examples be considered as exampleonly, with a true scope and spirit of the disclosed embodiments beingindicated by the following claims.

1-20. (canceled)
 21. A system for calibration of a device forinter-device communication, the system comprising: at least one scaleconfigured to measure weight of an external device; at least onevibration sensor configured to measure vibrations from the externaldevice; at least one memory storing: a table mapping models of externaldevices to weights and to transformations; and instructions; and atleast one processor configured to execute the instructions to performoperations, the operations comprising: receiving, from a user, anidentifier of the user; receiving, from the at least one scale, ameasured weight of the external device; determining, using the storedtable, likely models for the external device; transmitting to theexternal device a command to cause the external device to vibrateaccording to one or more commanded patterns; receiving, from the atleast one vibration sensor, one or more measurements corresponding tothe one or more commanded patterns; selecting one of the likely modelshaving a mapped transformation that transforms the received measurementinto the one or more commanded patterns, within a first margin of error;and associating the received identifier with the selected model.
 22. Thesystem of claim 21, further comprising at least one of a magnetic stripreader, a contactless reader, or a barcode scanner configured to receivethe user identifier.
 23. The system of claim 21, wherein receiving theuser identifier comprises wirelessly receiving the user identifier fromthe external device.
 24. The system of claim 21, wherein selecting thelikely model comprises determining that a weight in the tablecorresponds to the measured weight, within a second margin of error. 25.The system of claim 24, wherein the second margin of error comprises 2grams or less.
 26. The system of claim 24, wherein the second margin oferror comprises 5% or less.
 27. The system of claim 21, wherein the oneor more transformations comprise at least one of multiplicative,additive, Fourier, or translational transformations.
 28. The system ofclaim 21, wherein the first margin of error comprises a threshold on adegree of difference between the transformed one or more measurementsand the one or more commanded patterns.
 29. The system of claim 28,wherein the degree of difference comprises an unsigned difference. 30.The system of claim 28, wherein the degree of difference comprises anautocorrelation function.
 31. The system of claim 28, wherein the atleast one processor applies the threshold to at least one of a maximum,a minimum, a signed integral, or an unsigned integral of the degree ofdifference.
 32. A system for calibration of a device for inter-devicecommunication, the system comprising: at least one vibration sensorconfigured to measure vibrations from the external device; at least onememory storing instructions; and at least one processor configured toexecute the instructions to perform operations, the operationscomprising: receiving, from a user, an identifier of the user;transmitting to the external device a command to cause the externaldevice to vibrate according to one or more commanded patterns;receiving, from the at least one vibration sensor, one or moremeasurements corresponding to the one or more commanded patterns;generating a data structure mapping the one or more receivedmeasurements to the one or more commanded patterns; and indexing thedata structure by the received identifier.
 33. The system of claim 32,wherein the operations further comprise: receiving, from the user, anindication of a model of the external device; and further indexing thedata structure by the received model indication.
 34. The system of claim32, wherein the operations further comprise: receiving, from a remotedevice, a request for the indexed data structure; and transmitting, inresponse to the request, the indexed data structure.
 35. The system ofclaim 32, wherein transmitting the command comprises sending the commandusing a short-range communication link.
 36. The system of claim 32,wherein the at least one vibration sensor comprises a microelectro-mechanical systems (MEMS) accelerometer, a piezoelectricaccelerometer, a piezoresistive accelerometer, or a capacitiveaccelerometer.
 37. The system of claim 32, wherein the at least onevibration sensor comprises a spring scale or a strain gauge.
 38. Thesystem of claim 32, further comprising at least one scale configured tomeasure a weight of the external device, and wherein the operationsfurther comprise further indexing the data structure by the measuredweight.
 39. The system of claim 38, wherein the at least one scalecomprises a spring scale, a hydraulic scale, a pneumatic scale, or astring gauge scale.
 40. A system for calibration of a device forinter-device communication, the system comprising: at least one scaleconfigured to measure weight of an external device; at least onevibration sensor configured to measure vibrations from the externaldevice; at least one memory storing instructions; and at least oneprocessor configured to execute the instructions to perform operations,the operations comprising: receiving, from a user, an identifier of theuser; receiving, from the user, an indication of a model of the externaldevice; receiving, from the at least one scale, a measured weight of theexternal device; transmitting to the external device a command to causethe external device to vibrate according to one or more commandedpatterns; receiving, from the at least one vibration sensor, one or moremeasurements corresponding to the one or more commanded patterns;generating a data structure mapping the one or more receivedmeasurements to the one or more commanded patterns; indexing the datastructure by the received model indication; and associating the receivedidentifier with the received model indication and the measured weight.